如果没接触过 React Native的可以先去看这篇文章,把基本环境搭建好,本篇说一下 RN 与 原生的相互交互与传参( 这里只讲iOS这一块)
功能
RN 点击按钮触发 原生 方法,RN 带参传递给原生
原生 调用 RN 方法,原生 带参 传递给 RN 端
Native 端
1.首先需要调用的原生方法需要继承类RCTEventEmitter
,然后实现 RCTBridgeModule
协议
2.类实现中需要添加 RCT_EXPORT_MODULE()
的宏
3.通过 RCT_EXPORT_METHOD()
宏 来实现需要导出 javascript
的方法
看一下 Native 端的类文件
RNMethodTool.h
|
|
这里引入 RCTBridge.h
之类的文件可能会报错file not found
,编译一下就 OK 了,不用管。
RNMethodTool.m
|
|
要注意的点
如果没有
RCT_EXPORT_MODULE
这个宏的话,会报错,也就是 RN 找不到这个 module , 因为没有用这个宏导出暴露给 RNsupportedEvents
如果没有实现这个方法,你会发现每次 run-ios 模拟器一打开就会闪退,而且没有错误提示supportedEvents
这个数组方法里如果不加入标识,点击是没反应的,这里是 EventReminder ,可以自己命名
JS端:
1.需要引用 NativeModules
模块
2.通过 NativeModules.xxx
获取 Native 的类,xxx 为 Native 的类名
3.上一步获取到的 Native 类,调用 Native 中导出的方法
示例代码说明
####